package com.zmn.oms.dubbo.interfaces.zmn.factory.part;

import com.zmn.common.dto.ResponseDTO;
import com.zmn.oms.dubbo.dto.zmn.part.fcpart.*;

import java.util.List;

/**
 * 类描述：
 *
 * @author LiangHailong
 * @date 2019/05/15 15:18
 */
public interface FactoryOrderPartRemoteService {

    /**
     *  通过orderId 查询配件
     *  用于 审核配件
     */
    ResponseDTO<FcOrderPartDRO> findPartByOrderId(Long orderId);

    /**
     * 据订单id查询最新批次的配件,用于厂商配件审核
     * @param orderId
     * @return
     */
    ResponseDTO<FcOrderPartDRO> partsReview(Long orderId);

    /**
     * 批量更新订单配件审核结果
     * @param fcOrderPartReviewBatchDIO
     * @return
     */
    ResponseDTO saveReview(FcOrderPartReviewBatchDIO fcOrderPartReviewBatchDIO);

    /**
     * 订单配件列表
     * @param fcOrderPartQueryDIO
     * @return
     */
    ResponseDTO<FcOrderPartListPageDRO> listPageByQuery(FcOrderPartQueryDIO fcOrderPartQueryDIO);

    /**
     * 订单配件详情
     * @param fcOrderPartId
     * @return
     */
    ResponseDTO<FcOrderPartDetailDRO> getDetail(Integer fcOrderPartId);

    /**
     * 保存旧件返厂
     * @return
     */
    ResponseDTO saveOldPartReturn(FcOrderOldPartReturnDIO fcOrderOldPartReturnDIO);

    /**
     * 保存邮寄
     * @param fcOrderPartPostDIO
     * @return
     */
    ResponseDTO savePartPost(FcOrderPartPostDIO fcOrderPartPostDIO);

    /**
     * 配件撤回
     * @param fcOrderPartId
     * @return
     */
    ResponseDTO saveRecall(Integer fcOrderPartId,Long orderId);

    /**
     * 根据厂商配件id 查询物流信息
     * @param fcOrderPartId
     * @return
     */
    ResponseDTO findPostInfo(Integer fcOrderPartId);

    /**
     * 工具工单ID查询物流信息
     * @param orderId
     * @return
     */
    com.zmn.common.dto2.ResponseDTO<List<FcOrderPartPostDetailDRO>> findPostInfoByOrderId(Long orderId);
}
